/*
 * ColaInterfaz.cpp
 *
 *  Created on: 14/08/2014
 *      Author: migue
 */

#include "ColaInterfaz.h"
#include <unistd.h>

ColaInterfaz::ColaInterfaz(const char* ruta, char id, bool crear) :
	ColaMensajes(ruta, id, crear)
{

}

ColaInterfaz::~ColaInterfaz() {

}


bool ColaInterfaz::recibirMensaje(MENSAJE& msj, Tipos::TipoDeMensaje tipoEsperado, int idEspera) {
	bool res;
	bool seguirEsperando;

	do {

		res = this->recibir(&msj, TAM_MENSAJE, idEspera);

		if (msj.tipo != tipoEsperado) {
			seguirEsperando = true;

			this->enviar(&msj, TAM_MENSAJE);

			usleep(10);
		}
		else {
			seguirEsperando = false;
		}


	}
	while (seguirEsperando);

	return res;
}

bool ColaInterfaz::recibirMensaje(MENSAJE& msj, Tipos::TipoDeMensaje tipo1, Tipos::TipoDeMensaje tipo2, int idEspera) {
	bool res;
	bool seguirEsperando;

	do {

		res = this->recibir(&msj, TAM_MENSAJE, idEspera);

		if (msj.tipo != tipo1 && msj.tipo != tipo2) {
			seguirEsperando = true;

			this->enviar(&msj, TAM_MENSAJE);

			usleep(10);
		}
		else {
			seguirEsperando = false;
		}


	}
	while (seguirEsperando);

	return res;
}
